/*******************************************************************************
 * Copyright (c) 2020 THALES GLOBAL SERVICES.
 *  
 *  This program and the accompanying materials are made available under the
 *  terms of the Eclipse Public License 2.0 which is available at
 *  http://www.eclipse.org/legal/epl-2.0
 *  
 *  SPDX-License-Identifier: EPL-2.0
 *  
 *  Contributors:
 *     Thales - initial API and implementation
 ******************************************************************************/
/*
 * generated by Xtext 2.18.0.M3
 */
package org.polarsys.capella.scenario.editor.dsl.services;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.List;
import org.eclipse.xtext.Alternatives;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.Group;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
import org.eclipse.xtext.service.GrammarProvider;

@Singleton
public class TextualScenarioGrammarAccess extends AbstractGrammarElementFinder {
	
	public class ModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Model");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScenarioKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cBeginAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cBeginLeftCurlyBracketKeyword_1_0 = (Keyword)cBeginAssignment_1.eContents().get(0);
		private final Assignment cParticipantsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cParticipantsParticipantParserRuleCall_2_0 = (RuleCall)cParticipantsAssignment_2.eContents().get(0);
		private final Assignment cElementsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cElementsElementParserRuleCall_3_0 = (RuleCall)cElementsAssignment_3.eContents().get(0);
		private final Assignment cEndAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Keyword cEndRightCurlyBracketKeyword_4_0 = (Keyword)cEndAssignment_4.eContents().get(0);
		
		//Model:
		//	'scenario' begin='{' participants+=Participant*
		//	elements+=Element*
		//	end='}';
		@Override public ParserRule getRule() { return rule; }
		
		//'scenario' begin='{' participants+=Participant* elements+=Element* end='}'
		public Group getGroup() { return cGroup; }
		
		//'scenario'
		public Keyword getScenarioKeyword_0() { return cScenarioKeyword_0; }
		
		//begin='{'
		public Assignment getBeginAssignment_1() { return cBeginAssignment_1; }
		
		//'{'
		public Keyword getBeginLeftCurlyBracketKeyword_1_0() { return cBeginLeftCurlyBracketKeyword_1_0; }
		
		//participants+=Participant*
		public Assignment getParticipantsAssignment_2() { return cParticipantsAssignment_2; }
		
		//Participant
		public RuleCall getParticipantsParticipantParserRuleCall_2_0() { return cParticipantsParticipantParserRuleCall_2_0; }
		
		//elements+=Element*
		public Assignment getElementsAssignment_3() { return cElementsAssignment_3; }
		
		//Element
		public RuleCall getElementsElementParserRuleCall_3_0() { return cElementsElementParserRuleCall_3_0; }
		
		//end='}'
		public Assignment getEndAssignment_4() { return cEndAssignment_4; }
		
		//'}'
		public Keyword getEndRightCurlyBracketKeyword_4_0() { return cEndRightCurlyBracketKeyword_4_0; }
	}
	public class ParticipantElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Participant");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cGenericComponentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cGenericFunctionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Participant:
		//	GenericComponent | GenericFunction;
		@Override public ParserRule getRule() { return rule; }
		
		//GenericComponent | GenericFunction
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//GenericComponent
		public RuleCall getGenericComponentParserRuleCall_0() { return cGenericComponentParserRuleCall_0; }
		
		//GenericFunction
		public RuleCall getGenericFunctionParserRuleCall_1() { return cGenericFunctionParserRuleCall_1; }
	}
	public class GenericComponentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.GenericComponent");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cEntityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cActorParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cComponentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cConfigurationItemParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cRoleParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		
		//GenericComponent:
		//	Entity | Actor | Component | ConfigurationItem | Role;
		@Override public ParserRule getRule() { return rule; }
		
		//Entity | Actor | Component | ConfigurationItem | Role
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//Entity
		public RuleCall getEntityParserRuleCall_0() { return cEntityParserRuleCall_0; }
		
		//Actor
		public RuleCall getActorParserRuleCall_1() { return cActorParserRuleCall_1; }
		
		//Component
		public RuleCall getComponentParserRuleCall_2() { return cComponentParserRuleCall_2; }
		
		//ConfigurationItem
		public RuleCall getConfigurationItemParserRuleCall_3() { return cConfigurationItemParserRuleCall_3; }
		
		//Role
		public RuleCall getRoleParserRuleCall_4() { return cRoleParserRuleCall_4; }
	}
	public class GenericFunctionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.GenericFunction");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cFunctionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cActivityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//GenericFunction:
		//	Function | Activity;
		@Override public ParserRule getRule() { return rule; }
		
		//Function | Activity
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//Function
		public RuleCall getFunctionParserRuleCall_0() { return cFunctionParserRuleCall_0; }
		
		//Activity
		public RuleCall getActivityParserRuleCall_1() { return cActivityParserRuleCall_1; }
	}
	public class ElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Element");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cMessageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cCombinedFragmentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cStateFragmentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cReferenceParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		
		//Element:
		//	Message | CombinedFragment | StateFragment | Reference;
		@Override public ParserRule getRule() { return rule; }
		
		//Message | CombinedFragment | StateFragment | Reference
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//Message
		public RuleCall getMessageParserRuleCall_0() { return cMessageParserRuleCall_0; }
		
		//CombinedFragment
		public RuleCall getCombinedFragmentParserRuleCall_1() { return cCombinedFragmentParserRuleCall_1; }
		
		//StateFragment
		public RuleCall getStateFragmentParserRuleCall_2() { return cStateFragmentParserRuleCall_2; }
		
		//Reference
		public RuleCall getReferenceParserRuleCall_3() { return cReferenceParserRuleCall_3; }
	}
	public class ActorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Actor");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordActorKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Actor:
		//	keyword='actor' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='actor' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='actor'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'actor'
		public Keyword getKeywordActorKeyword_0_0() { return cKeywordActorKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class ComponentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Component");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordComponentKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Component:
		//	keyword='component' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='component' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='component'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'component'
		public Keyword getKeywordComponentKeyword_0_0() { return cKeywordComponentKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class ConfigurationItemElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.ConfigurationItem");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordConfiguration_itemKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//ConfigurationItem:
		//	keyword='configuration_item' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='configuration_item' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='configuration_item'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'configuration_item'
		public Keyword getKeywordConfiguration_itemKeyword_0_0() { return cKeywordConfiguration_itemKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class FunctionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Function");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordFunctionKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Function:
		//	keyword='function' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='function' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='function'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'function'
		public Keyword getKeywordFunctionKeyword_0_0() { return cKeywordFunctionKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class ActivityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Activity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordActivityKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Activity:
		//	keyword='activity' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='activity' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='activity'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'activity'
		public Keyword getKeywordActivityKeyword_0_0() { return cKeywordActivityKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class EntityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Entity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordEntityKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Entity:
		//	keyword='entity' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='entity' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='entity'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'entity'
		public Keyword getKeywordEntityKeyword_0_0() { return cKeywordEntityKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class RoleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Role");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordRoleKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Role:
		//	keyword='role' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='role' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='role'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'role'
		public Keyword getKeywordRoleKeyword_0_0() { return cKeywordRoleKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class MessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Message");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSequenceMessageTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cArmTimerMessageParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cParticipantDeactivationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cLostFoundMessageParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		
		//Message:
		//	SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage;
		@Override public ParserRule getRule() { return rule; }
		
		//SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//SequenceMessageType
		public RuleCall getSequenceMessageTypeParserRuleCall_0() { return cSequenceMessageTypeParserRuleCall_0; }
		
		//ArmTimerMessage
		public RuleCall getArmTimerMessageParserRuleCall_1() { return cArmTimerMessageParserRuleCall_1; }
		
		//ParticipantDeactivation
		public RuleCall getParticipantDeactivationParserRuleCall_2() { return cParticipantDeactivationParserRuleCall_2; }
		
		//LostFoundMessage
		public RuleCall getLostFoundMessageParserRuleCall_3() { return cLostFoundMessageParserRuleCall_3; }
	}
	public class SequenceMessageTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.SequenceMessageType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSequenceMessageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cCreateMessageParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDeleteMessageParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		//SequenceMessageType:
		//	SequenceMessage | CreateMessage | DeleteMessage;
		@Override public ParserRule getRule() { return rule; }
		
		//SequenceMessage | CreateMessage | DeleteMessage
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//SequenceMessage
		public RuleCall getSequenceMessageParserRuleCall_0() { return cSequenceMessageParserRuleCall_0; }
		
		//CreateMessage
		public RuleCall getCreateMessageParserRuleCall_1() { return cCreateMessageParserRuleCall_1; }
		
		//DeleteMessage
		public RuleCall getDeleteMessageParserRuleCall_2() { return cDeleteMessageParserRuleCall_2; }
	}
	public class SequenceMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.SequenceMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cSourceSTRINGTerminalRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0);
		private final Assignment cArrowAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cArrowHyphenMinusGreaterThanSignKeyword_1_0 = (Keyword)cArrowAssignment_1.eContents().get(0);
		private final Assignment cTargetAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTargetSTRINGTerminalRuleCall_2_0 = (RuleCall)cTargetAssignment_2.eContents().get(0);
		private final Assignment cExecutionAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cExecutionWithExecutionKeyword_3_0 = (Keyword)cExecutionAssignment_3.eContents().get(0);
		private final Assignment cReturnAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Keyword cReturnWithReturnKeyword_4_0 = (Keyword)cReturnAssignment_4.eContents().get(0);
		private final Assignment cDoubleDotAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final Keyword cDoubleDotColonKeyword_5_0 = (Keyword)cDoubleDotAssignment_5.eContents().get(0);
		private final Assignment cNameAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cNameSTRINGTerminalRuleCall_6_0 = (RuleCall)cNameAssignment_6.eContents().get(0);
		
		//SequenceMessage:
		//	source=STRING arrow='->' target=STRING execution='withExecution'? return='withReturn'? doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//source=STRING arrow='->' target=STRING execution='withExecution'? return='withReturn'? doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//source=STRING
		public Assignment getSourceAssignment_0() { return cSourceAssignment_0; }
		
		//STRING
		public RuleCall getSourceSTRINGTerminalRuleCall_0_0() { return cSourceSTRINGTerminalRuleCall_0_0; }
		
		//arrow='->'
		public Assignment getArrowAssignment_1() { return cArrowAssignment_1; }
		
		//'->'
		public Keyword getArrowHyphenMinusGreaterThanSignKeyword_1_0() { return cArrowHyphenMinusGreaterThanSignKeyword_1_0; }
		
		//target=STRING
		public Assignment getTargetAssignment_2() { return cTargetAssignment_2; }
		
		//STRING
		public RuleCall getTargetSTRINGTerminalRuleCall_2_0() { return cTargetSTRINGTerminalRuleCall_2_0; }
		
		//execution='withExecution'?
		public Assignment getExecutionAssignment_3() { return cExecutionAssignment_3; }
		
		//'withExecution'
		public Keyword getExecutionWithExecutionKeyword_3_0() { return cExecutionWithExecutionKeyword_3_0; }
		
		//return='withReturn'?
		public Assignment getReturnAssignment_4() { return cReturnAssignment_4; }
		
		//'withReturn'
		public Keyword getReturnWithReturnKeyword_4_0() { return cReturnWithReturnKeyword_4_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_5() { return cDoubleDotAssignment_5; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_5_0() { return cDoubleDotColonKeyword_5_0; }
		
		//name=STRING
		public Assignment getNameAssignment_6() { return cNameAssignment_6; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_6_0() { return cNameSTRINGTerminalRuleCall_6_0; }
	}
	public class CreateMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.CreateMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cSourceSTRINGTerminalRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0);
		private final Assignment cArrowAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0 = (Keyword)cArrowAssignment_1.eContents().get(0);
		private final Assignment cTargetAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTargetSTRINGTerminalRuleCall_2_0 = (RuleCall)cTargetAssignment_2.eContents().get(0);
		private final Assignment cDoubleDotAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cDoubleDotColonKeyword_3_0 = (Keyword)cDoubleDotAssignment_3.eContents().get(0);
		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cNameSTRINGTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
		
		//CreateMessage:
		//	source=STRING arrow='->+' target=STRING doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//source=STRING arrow='->+' target=STRING doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//source=STRING
		public Assignment getSourceAssignment_0() { return cSourceAssignment_0; }
		
		//STRING
		public RuleCall getSourceSTRINGTerminalRuleCall_0_0() { return cSourceSTRINGTerminalRuleCall_0_0; }
		
		//arrow='->+'
		public Assignment getArrowAssignment_1() { return cArrowAssignment_1; }
		
		//'->+'
		public Keyword getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0() { return cArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0; }
		
		//target=STRING
		public Assignment getTargetAssignment_2() { return cTargetAssignment_2; }
		
		//STRING
		public RuleCall getTargetSTRINGTerminalRuleCall_2_0() { return cTargetSTRINGTerminalRuleCall_2_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_3() { return cDoubleDotAssignment_3; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_3_0() { return cDoubleDotColonKeyword_3_0; }
		
		//name=STRING
		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; }
	}
	public class DeleteMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.DeleteMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cSourceSTRINGTerminalRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0);
		private final Assignment cArrowAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cArrowXKeyword_1_0 = (Keyword)cArrowAssignment_1.eContents().get(0);
		private final Assignment cTargetAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTargetSTRINGTerminalRuleCall_2_0 = (RuleCall)cTargetAssignment_2.eContents().get(0);
		private final Assignment cDoubleDotAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cDoubleDotColonKeyword_3_0 = (Keyword)cDoubleDotAssignment_3.eContents().get(0);
		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cNameSTRINGTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
		
		//DeleteMessage:
		//	source=STRING arrow='->x' target=STRING doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//source=STRING arrow='->x' target=STRING doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//source=STRING
		public Assignment getSourceAssignment_0() { return cSourceAssignment_0; }
		
		//STRING
		public RuleCall getSourceSTRINGTerminalRuleCall_0_0() { return cSourceSTRINGTerminalRuleCall_0_0; }
		
		//arrow='->x'
		public Assignment getArrowAssignment_1() { return cArrowAssignment_1; }
		
		//'->x'
		public Keyword getArrowXKeyword_1_0() { return cArrowXKeyword_1_0; }
		
		//target=STRING
		public Assignment getTargetAssignment_2() { return cTargetAssignment_2; }
		
		//STRING
		public RuleCall getTargetSTRINGTerminalRuleCall_2_0() { return cTargetSTRINGTerminalRuleCall_2_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_3() { return cDoubleDotAssignment_3; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_3_0() { return cDoubleDotColonKeyword_3_0; }
		
		//name=STRING
		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; }
	}
	public class ArmTimerMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.ArmTimerMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cArrowAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0 = (Keyword)cArrowAssignment_0.eContents().get(0);
		private final Assignment cParticipantAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cParticipantSTRINGTerminalRuleCall_1_0 = (RuleCall)cParticipantAssignment_1.eContents().get(0);
		private final Assignment cExecutionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cExecutionWithExecutionKeyword_2_0 = (Keyword)cExecutionAssignment_2.eContents().get(0);
		private final Assignment cDoubleDotAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cDoubleDotColonKeyword_3_0 = (Keyword)cDoubleDotAssignment_3.eContents().get(0);
		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cNameSTRINGTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
		
		//ArmTimerMessage:
		//	arrow="->>" participant=STRING execution='withExecution'? doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//arrow="->>" participant=STRING execution='withExecution'? doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//arrow="->>"
		public Assignment getArrowAssignment_0() { return cArrowAssignment_0; }
		
		//"->>"
		public Keyword getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0() { return cArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0; }
		
		//participant=STRING
		public Assignment getParticipantAssignment_1() { return cParticipantAssignment_1; }
		
		//STRING
		public RuleCall getParticipantSTRINGTerminalRuleCall_1_0() { return cParticipantSTRINGTerminalRuleCall_1_0; }
		
		//execution='withExecution'?
		public Assignment getExecutionAssignment_2() { return cExecutionAssignment_2; }
		
		//'withExecution'
		public Keyword getExecutionWithExecutionKeyword_2_0() { return cExecutionWithExecutionKeyword_2_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_3() { return cDoubleDotAssignment_3; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_3_0() { return cDoubleDotColonKeyword_3_0; }
		
		//name=STRING
		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; }
	}
	public class LostFoundMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.LostFoundMessage");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cLostMessageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cFoundMessageParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//LostFoundMessage:
		//	LostMessage | FoundMessage;
		@Override public ParserRule getRule() { return rule; }
		
		//LostMessage | FoundMessage
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//LostMessage
		public RuleCall getLostMessageParserRuleCall_0() { return cLostMessageParserRuleCall_0; }
		
		//FoundMessage
		public RuleCall getFoundMessageParserRuleCall_1() { return cFoundMessageParserRuleCall_1; }
	}
	public class LostMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.LostMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cSourceSTRINGTerminalRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0);
		private final Assignment cArrowAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cArrowOKeyword_1_0 = (Keyword)cArrowAssignment_1.eContents().get(0);
		private final Assignment cDoubleDotAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cDoubleDotColonKeyword_2_0 = (Keyword)cDoubleDotAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameSTRINGTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//LostMessage:
		//	source=STRING arrow='->o' doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//source=STRING arrow='->o' doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//source=STRING
		public Assignment getSourceAssignment_0() { return cSourceAssignment_0; }
		
		//STRING
		public RuleCall getSourceSTRINGTerminalRuleCall_0_0() { return cSourceSTRINGTerminalRuleCall_0_0; }
		
		//arrow='->o'
		public Assignment getArrowAssignment_1() { return cArrowAssignment_1; }
		
		//'->o'
		public Keyword getArrowOKeyword_1_0() { return cArrowOKeyword_1_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_2() { return cDoubleDotAssignment_2; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_2_0() { return cDoubleDotColonKeyword_2_0; }
		
		//name=STRING
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_3_0() { return cNameSTRINGTerminalRuleCall_3_0; }
	}
	public class FoundMessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.FoundMessage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cArrowAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cArrowOKeyword_0_0 = (Keyword)cArrowAssignment_0.eContents().get(0);
		private final Assignment cTargetAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cTargetSTRINGTerminalRuleCall_1_0 = (RuleCall)cTargetAssignment_1.eContents().get(0);
		private final Assignment cExecutionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cExecutionWithExecutionKeyword_2_0 = (Keyword)cExecutionAssignment_2.eContents().get(0);
		private final Assignment cDoubleDotAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cDoubleDotColonKeyword_3_0 = (Keyword)cDoubleDotAssignment_3.eContents().get(0);
		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cNameSTRINGTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
		
		//FoundMessage:
		//	arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING
		public Group getGroup() { return cGroup; }
		
		//arrow='o->'
		public Assignment getArrowAssignment_0() { return cArrowAssignment_0; }
		
		//'o->'
		public Keyword getArrowOKeyword_0_0() { return cArrowOKeyword_0_0; }
		
		//target=STRING
		public Assignment getTargetAssignment_1() { return cTargetAssignment_1; }
		
		//STRING
		public RuleCall getTargetSTRINGTerminalRuleCall_1_0() { return cTargetSTRINGTerminalRuleCall_1_0; }
		
		//execution='withExecution'?
		public Assignment getExecutionAssignment_2() { return cExecutionAssignment_2; }
		
		//'withExecution'
		public Keyword getExecutionWithExecutionKeyword_2_0() { return cExecutionWithExecutionKeyword_2_0; }
		
		//doubleDot=':'
		public Assignment getDoubleDotAssignment_3() { return cDoubleDotAssignment_3; }
		
		//':'
		public Keyword getDoubleDotColonKeyword_3_0() { return cDoubleDotColonKeyword_3_0; }
		
		//name=STRING
		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; }
	}
	public class ParticipantDeactivationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.ParticipantDeactivation");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordDeactivateKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//ParticipantDeactivation:
		//	keyword='deactivate' name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='deactivate' name=STRING
		public Group getGroup() { return cGroup; }
		
		//keyword='deactivate'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'deactivate'
		public Keyword getKeywordDeactivateKeyword_0_0() { return cKeywordDeactivateKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
	}
	public class CombinedFragmentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.CombinedFragment");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Alternatives cKeywordAlternatives_0_0 = (Alternatives)cKeywordAssignment_0.eContents().get(0);
		private final Keyword cKeywordAltKeyword_0_0_0 = (Keyword)cKeywordAlternatives_0_0.eContents().get(0);
		private final Keyword cKeywordLoopKeyword_0_0_1 = (Keyword)cKeywordAlternatives_0_0.eContents().get(1);
		private final Keyword cKeywordParKeyword_0_0_2 = (Keyword)cKeywordAlternatives_0_0.eContents().get(2);
		private final Keyword cKeywordAssertKeyword_0_0_3 = (Keyword)cKeywordAlternatives_0_0.eContents().get(3);
		private final Keyword cKeywordCriticalKeyword_0_0_4 = (Keyword)cKeywordAlternatives_0_0.eContents().get(4);
		private final Keyword cKeywordIgnoreKeyword_0_0_5 = (Keyword)cKeywordAlternatives_0_0.eContents().get(5);
		private final Keyword cKeywordNegKeyword_0_0_6 = (Keyword)cKeywordAlternatives_0_0.eContents().get(6);
		private final Keyword cKeywordOptKeyword_0_0_7 = (Keyword)cKeywordAlternatives_0_0.eContents().get(7);
		private final Keyword cKeywordSeqKeyword_0_0_8 = (Keyword)cKeywordAlternatives_0_0.eContents().get(8);
		private final Keyword cKeywordStrictKeyword_0_0_9 = (Keyword)cKeywordAlternatives_0_0.eContents().get(9);
		private final Keyword cKeywordUnsetKeyword_0_0_10 = (Keyword)cKeywordAlternatives_0_0.eContents().get(10);
		private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cExpressionSTRINGTerminalRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
		private final Assignment cOverAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cOverOverKeyword_2_0 = (Keyword)cOverAssignment_2.eContents().get(0);
		private final Assignment cTimelinesAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cTimelinesSTRINGTerminalRuleCall_3_0 = (RuleCall)cTimelinesAssignment_3.eContents().get(0);
		private final Assignment cBlockAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBlockBlockParserRuleCall_4_0 = (RuleCall)cBlockAssignment_4.eContents().get(0);
		private final Assignment cOperandsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cOperandsOperandParserRuleCall_5_0 = (RuleCall)cOperandsAssignment_5.eContents().get(0);
		
		//CombinedFragment:
		//	keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset')
		//	expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand*;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset')
		//expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand*
		public Group getGroup() { return cGroup; }
		
		//keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset')
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset')
		public Alternatives getKeywordAlternatives_0_0() { return cKeywordAlternatives_0_0; }
		
		//'alt'
		public Keyword getKeywordAltKeyword_0_0_0() { return cKeywordAltKeyword_0_0_0; }
		
		//'loop'
		public Keyword getKeywordLoopKeyword_0_0_1() { return cKeywordLoopKeyword_0_0_1; }
		
		//'par'
		public Keyword getKeywordParKeyword_0_0_2() { return cKeywordParKeyword_0_0_2; }
		
		//'assert'
		public Keyword getKeywordAssertKeyword_0_0_3() { return cKeywordAssertKeyword_0_0_3; }
		
		//'critical'
		public Keyword getKeywordCriticalKeyword_0_0_4() { return cKeywordCriticalKeyword_0_0_4; }
		
		//'ignore'
		public Keyword getKeywordIgnoreKeyword_0_0_5() { return cKeywordIgnoreKeyword_0_0_5; }
		
		//'neg'
		public Keyword getKeywordNegKeyword_0_0_6() { return cKeywordNegKeyword_0_0_6; }
		
		//'opt'
		public Keyword getKeywordOptKeyword_0_0_7() { return cKeywordOptKeyword_0_0_7; }
		
		//'seq'
		public Keyword getKeywordSeqKeyword_0_0_8() { return cKeywordSeqKeyword_0_0_8; }
		
		//'strict'
		public Keyword getKeywordStrictKeyword_0_0_9() { return cKeywordStrictKeyword_0_0_9; }
		
		//'unset'
		public Keyword getKeywordUnsetKeyword_0_0_10() { return cKeywordUnsetKeyword_0_0_10; }
		
		//expression=STRING?
		public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
		
		//STRING
		public RuleCall getExpressionSTRINGTerminalRuleCall_1_0() { return cExpressionSTRINGTerminalRuleCall_1_0; }
		
		//over='over'
		public Assignment getOverAssignment_2() { return cOverAssignment_2; }
		
		//'over'
		public Keyword getOverOverKeyword_2_0() { return cOverOverKeyword_2_0; }
		
		//timelines+=STRING+
		public Assignment getTimelinesAssignment_3() { return cTimelinesAssignment_3; }
		
		//STRING
		public RuleCall getTimelinesSTRINGTerminalRuleCall_3_0() { return cTimelinesSTRINGTerminalRuleCall_3_0; }
		
		//block=Block
		public Assignment getBlockAssignment_4() { return cBlockAssignment_4; }
		
		//Block
		public RuleCall getBlockBlockParserRuleCall_4_0() { return cBlockBlockParserRuleCall_4_0; }
		
		//operands+=Operand*
		public Assignment getOperandsAssignment_5() { return cOperandsAssignment_5; }
		
		//Operand
		public RuleCall getOperandsOperandParserRuleCall_5_0() { return cOperandsOperandParserRuleCall_5_0; }
	}
	public class OperandElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Operand");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordElseKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cExpressionSTRINGTerminalRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
		private final Assignment cBlockAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cBlockBlockParserRuleCall_2_0 = (RuleCall)cBlockAssignment_2.eContents().get(0);
		
		//Operand:
		//	keyword='else'? expression=STRING? block=Block;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='else'? expression=STRING? block=Block
		public Group getGroup() { return cGroup; }
		
		//keyword='else'?
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'else'
		public Keyword getKeywordElseKeyword_0_0() { return cKeywordElseKeyword_0_0; }
		
		//expression=STRING?
		public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
		
		//STRING
		public RuleCall getExpressionSTRINGTerminalRuleCall_1_0() { return cExpressionSTRINGTerminalRuleCall_1_0; }
		
		//block=Block
		public Assignment getBlockAssignment_2() { return cBlockAssignment_2; }
		
		//Block
		public RuleCall getBlockBlockParserRuleCall_2_0() { return cBlockBlockParserRuleCall_2_0; }
	}
	public class BlockElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Block");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cBeginAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cBeginLeftCurlyBracketKeyword_0_0 = (Keyword)cBeginAssignment_0.eContents().get(0);
		private final Assignment cBlockElementsAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cBlockElementsElementParserRuleCall_1_0 = (RuleCall)cBlockElementsAssignment_1.eContents().get(0);
		private final Assignment cEndAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cEndRightCurlyBracketKeyword_2_0 = (Keyword)cEndAssignment_2.eContents().get(0);
		
		//Block:
		//	begin="{" blockElements+=Element* end="}";
		@Override public ParserRule getRule() { return rule; }
		
		//begin="{" blockElements+=Element* end="}"
		public Group getGroup() { return cGroup; }
		
		//begin="{"
		public Assignment getBeginAssignment_0() { return cBeginAssignment_0; }
		
		//"{"
		public Keyword getBeginLeftCurlyBracketKeyword_0_0() { return cBeginLeftCurlyBracketKeyword_0_0; }
		
		//blockElements+=Element*
		public Assignment getBlockElementsAssignment_1() { return cBlockElementsAssignment_1; }
		
		//Element
		public RuleCall getBlockElementsElementParserRuleCall_1_0() { return cBlockElementsElementParserRuleCall_1_0; }
		
		//end="}"
		public Assignment getEndAssignment_2() { return cEndAssignment_2; }
		
		//"}"
		public Keyword getEndRightCurlyBracketKeyword_2_0() { return cEndRightCurlyBracketKeyword_2_0; }
	}
	public class StateFragmentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.StateFragment");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cOnAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cOnOnKeyword_0_0 = (Keyword)cOnAssignment_0.eContents().get(0);
		private final Assignment cTimelineAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cTimelineSTRINGTerminalRuleCall_1_0 = (RuleCall)cTimelineAssignment_1.eContents().get(0);
		private final Assignment cKeywordAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Alternatives cKeywordAlternatives_2_0 = (Alternatives)cKeywordAssignment_2.eContents().get(0);
		private final Keyword cKeywordStateKeyword_2_0_0 = (Keyword)cKeywordAlternatives_2_0.eContents().get(0);
		private final Keyword cKeywordModeKeyword_2_0_1 = (Keyword)cKeywordAlternatives_2_0.eContents().get(1);
		private final Keyword cKeywordFunctionKeyword_2_0_2 = (Keyword)cKeywordAlternatives_2_0.eContents().get(2);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameSTRINGTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//StateFragment:
		//	on='on' timeline=STRING keyword=('state' | 'mode' | 'function') name=STRING;
		@Override public ParserRule getRule() { return rule; }
		
		//on='on' timeline=STRING keyword=('state' | 'mode' | 'function') name=STRING
		public Group getGroup() { return cGroup; }
		
		//on='on'
		public Assignment getOnAssignment_0() { return cOnAssignment_0; }
		
		//'on'
		public Keyword getOnOnKeyword_0_0() { return cOnOnKeyword_0_0; }
		
		//timeline=STRING
		public Assignment getTimelineAssignment_1() { return cTimelineAssignment_1; }
		
		//STRING
		public RuleCall getTimelineSTRINGTerminalRuleCall_1_0() { return cTimelineSTRINGTerminalRuleCall_1_0; }
		
		//keyword=('state' | 'mode' | 'function')
		public Assignment getKeywordAssignment_2() { return cKeywordAssignment_2; }
		
		//('state' | 'mode' | 'function')
		public Alternatives getKeywordAlternatives_2_0() { return cKeywordAlternatives_2_0; }
		
		//'state'
		public Keyword getKeywordStateKeyword_2_0_0() { return cKeywordStateKeyword_2_0_0; }
		
		//'mode'
		public Keyword getKeywordModeKeyword_2_0_1() { return cKeywordModeKeyword_2_0_1; }
		
		//'function'
		public Keyword getKeywordFunctionKeyword_2_0_2() { return cKeywordFunctionKeyword_2_0_2; }
		
		//name=STRING
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_3_0() { return cNameSTRINGTerminalRuleCall_3_0; }
	}
	public class ReferenceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Reference");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cKeywordRefKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Assignment cOverAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cOverOverKeyword_2_0 = (Keyword)cOverAssignment_2.eContents().get(0);
		private final Assignment cTimelinesAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cTimelinesSTRINGTerminalRuleCall_3_0 = (RuleCall)cTimelinesAssignment_3.eContents().get(0);
		
		//Reference:
		//	keyword='ref' name=STRING over='over' timelines+=STRING+;
		@Override public ParserRule getRule() { return rule; }
		
		//keyword='ref' name=STRING over='over' timelines+=STRING+
		public Group getGroup() { return cGroup; }
		
		//keyword='ref'
		public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; }
		
		//'ref'
		public Keyword getKeywordRefKeyword_0_0() { return cKeywordRefKeyword_0_0; }
		
		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
		
		//over='over'
		public Assignment getOverAssignment_2() { return cOverAssignment_2; }
		
		//'over'
		public Keyword getOverOverKeyword_2_0() { return cOverOverKeyword_2_0; }
		
		//timelines+=STRING+
		public Assignment getTimelinesAssignment_3() { return cTimelinesAssignment_3; }
		
		//STRING
		public RuleCall getTimelinesSTRINGTerminalRuleCall_3_0() { return cTimelinesSTRINGTerminalRuleCall_3_0; }
	}
	
	
	private final ModelElements pModel;
	private final ParticipantElements pParticipant;
	private final GenericComponentElements pGenericComponent;
	private final GenericFunctionElements pGenericFunction;
	private final ElementElements pElement;
	private final ActorElements pActor;
	private final ComponentElements pComponent;
	private final ConfigurationItemElements pConfigurationItem;
	private final FunctionElements pFunction;
	private final ActivityElements pActivity;
	private final EntityElements pEntity;
	private final RoleElements pRole;
	private final MessageElements pMessage;
	private final SequenceMessageTypeElements pSequenceMessageType;
	private final SequenceMessageElements pSequenceMessage;
	private final CreateMessageElements pCreateMessage;
	private final DeleteMessageElements pDeleteMessage;
	private final ArmTimerMessageElements pArmTimerMessage;
	private final LostFoundMessageElements pLostFoundMessage;
	private final LostMessageElements pLostMessage;
	private final FoundMessageElements pFoundMessage;
	private final ParticipantDeactivationElements pParticipantDeactivation;
	private final CombinedFragmentElements pCombinedFragment;
	private final OperandElements pOperand;
	private final BlockElements pBlock;
	private final StateFragmentElements pStateFragment;
	private final ReferenceElements pReference;
	
	private final Grammar grammar;
	
	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public TextualScenarioGrammarAccess(GrammarProvider grammarProvider,
			TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pModel = new ModelElements();
		this.pParticipant = new ParticipantElements();
		this.pGenericComponent = new GenericComponentElements();
		this.pGenericFunction = new GenericFunctionElements();
		this.pElement = new ElementElements();
		this.pActor = new ActorElements();
		this.pComponent = new ComponentElements();
		this.pConfigurationItem = new ConfigurationItemElements();
		this.pFunction = new FunctionElements();
		this.pActivity = new ActivityElements();
		this.pEntity = new EntityElements();
		this.pRole = new RoleElements();
		this.pMessage = new MessageElements();
		this.pSequenceMessageType = new SequenceMessageTypeElements();
		this.pSequenceMessage = new SequenceMessageElements();
		this.pCreateMessage = new CreateMessageElements();
		this.pDeleteMessage = new DeleteMessageElements();
		this.pArmTimerMessage = new ArmTimerMessageElements();
		this.pLostFoundMessage = new LostFoundMessageElements();
		this.pLostMessage = new LostMessageElements();
		this.pFoundMessage = new FoundMessageElements();
		this.pParticipantDeactivation = new ParticipantDeactivationElements();
		this.pCombinedFragment = new CombinedFragmentElements();
		this.pOperand = new OperandElements();
		this.pBlock = new BlockElements();
		this.pStateFragment = new StateFragmentElements();
		this.pReference = new ReferenceElements();
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.polarsys.capella.scenario.editor.dsl.TextualScenario".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	
	
	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Model:
	//	'scenario' begin='{' participants+=Participant*
	//	elements+=Element*
	//	end='}';
	public ModelElements getModelAccess() {
		return pModel;
	}
	
	public ParserRule getModelRule() {
		return getModelAccess().getRule();
	}
	
	//Participant:
	//	GenericComponent | GenericFunction;
	public ParticipantElements getParticipantAccess() {
		return pParticipant;
	}
	
	public ParserRule getParticipantRule() {
		return getParticipantAccess().getRule();
	}
	
	//GenericComponent:
	//	Entity | Actor | Component | ConfigurationItem | Role;
	public GenericComponentElements getGenericComponentAccess() {
		return pGenericComponent;
	}
	
	public ParserRule getGenericComponentRule() {
		return getGenericComponentAccess().getRule();
	}
	
	//GenericFunction:
	//	Function | Activity;
	public GenericFunctionElements getGenericFunctionAccess() {
		return pGenericFunction;
	}
	
	public ParserRule getGenericFunctionRule() {
		return getGenericFunctionAccess().getRule();
	}
	
	//Element:
	//	Message | CombinedFragment | StateFragment | Reference;
	public ElementElements getElementAccess() {
		return pElement;
	}
	
	public ParserRule getElementRule() {
		return getElementAccess().getRule();
	}
	
	//Actor:
	//	keyword='actor' name=STRING;
	public ActorElements getActorAccess() {
		return pActor;
	}
	
	public ParserRule getActorRule() {
		return getActorAccess().getRule();
	}
	
	//Component:
	//	keyword='component' name=STRING;
	public ComponentElements getComponentAccess() {
		return pComponent;
	}
	
	public ParserRule getComponentRule() {
		return getComponentAccess().getRule();
	}
	
	//ConfigurationItem:
	//	keyword='configuration_item' name=STRING;
	public ConfigurationItemElements getConfigurationItemAccess() {
		return pConfigurationItem;
	}
	
	public ParserRule getConfigurationItemRule() {
		return getConfigurationItemAccess().getRule();
	}
	
	//Function:
	//	keyword='function' name=STRING;
	public FunctionElements getFunctionAccess() {
		return pFunction;
	}
	
	public ParserRule getFunctionRule() {
		return getFunctionAccess().getRule();
	}
	
	//Activity:
	//	keyword='activity' name=STRING;
	public ActivityElements getActivityAccess() {
		return pActivity;
	}
	
	public ParserRule getActivityRule() {
		return getActivityAccess().getRule();
	}
	
	//Entity:
	//	keyword='entity' name=STRING;
	public EntityElements getEntityAccess() {
		return pEntity;
	}
	
	public ParserRule getEntityRule() {
		return getEntityAccess().getRule();
	}
	
	//Role:
	//	keyword='role' name=STRING;
	public RoleElements getRoleAccess() {
		return pRole;
	}
	
	public ParserRule getRoleRule() {
		return getRoleAccess().getRule();
	}
	
	//Message:
	//	SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage;
	public MessageElements getMessageAccess() {
		return pMessage;
	}
	
	public ParserRule getMessageRule() {
		return getMessageAccess().getRule();
	}
	
	//SequenceMessageType:
	//	SequenceMessage | CreateMessage | DeleteMessage;
	public SequenceMessageTypeElements getSequenceMessageTypeAccess() {
		return pSequenceMessageType;
	}
	
	public ParserRule getSequenceMessageTypeRule() {
		return getSequenceMessageTypeAccess().getRule();
	}
	
	//SequenceMessage:
	//	source=STRING arrow='->' target=STRING execution='withExecution'? return='withReturn'? doubleDot=':' name=STRING;
	public SequenceMessageElements getSequenceMessageAccess() {
		return pSequenceMessage;
	}
	
	public ParserRule getSequenceMessageRule() {
		return getSequenceMessageAccess().getRule();
	}
	
	//CreateMessage:
	//	source=STRING arrow='->+' target=STRING doubleDot=':' name=STRING;
	public CreateMessageElements getCreateMessageAccess() {
		return pCreateMessage;
	}
	
	public ParserRule getCreateMessageRule() {
		return getCreateMessageAccess().getRule();
	}
	
	//DeleteMessage:
	//	source=STRING arrow='->x' target=STRING doubleDot=':' name=STRING;
	public DeleteMessageElements getDeleteMessageAccess() {
		return pDeleteMessage;
	}
	
	public ParserRule getDeleteMessageRule() {
		return getDeleteMessageAccess().getRule();
	}
	
	//ArmTimerMessage:
	//	arrow="->>" participant=STRING execution='withExecution'? doubleDot=':' name=STRING;
	public ArmTimerMessageElements getArmTimerMessageAccess() {
		return pArmTimerMessage;
	}
	
	public ParserRule getArmTimerMessageRule() {
		return getArmTimerMessageAccess().getRule();
	}
	
	//LostFoundMessage:
	//	LostMessage | FoundMessage;
	public LostFoundMessageElements getLostFoundMessageAccess() {
		return pLostFoundMessage;
	}
	
	public ParserRule getLostFoundMessageRule() {
		return getLostFoundMessageAccess().getRule();
	}
	
	//LostMessage:
	//	source=STRING arrow='->o' doubleDot=':' name=STRING;
	public LostMessageElements getLostMessageAccess() {
		return pLostMessage;
	}
	
	public ParserRule getLostMessageRule() {
		return getLostMessageAccess().getRule();
	}
	
	//FoundMessage:
	//	arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING;
	public FoundMessageElements getFoundMessageAccess() {
		return pFoundMessage;
	}
	
	public ParserRule getFoundMessageRule() {
		return getFoundMessageAccess().getRule();
	}
	
	//ParticipantDeactivation:
	//	keyword='deactivate' name=STRING;
	public ParticipantDeactivationElements getParticipantDeactivationAccess() {
		return pParticipantDeactivation;
	}
	
	public ParserRule getParticipantDeactivationRule() {
		return getParticipantDeactivationAccess().getRule();
	}
	
	//CombinedFragment:
	//	keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset')
	//	expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand*;
	public CombinedFragmentElements getCombinedFragmentAccess() {
		return pCombinedFragment;
	}
	
	public ParserRule getCombinedFragmentRule() {
		return getCombinedFragmentAccess().getRule();
	}
	
	//Operand:
	//	keyword='else'? expression=STRING? block=Block;
	public OperandElements getOperandAccess() {
		return pOperand;
	}
	
	public ParserRule getOperandRule() {
		return getOperandAccess().getRule();
	}
	
	//Block:
	//	begin="{" blockElements+=Element* end="}";
	public BlockElements getBlockAccess() {
		return pBlock;
	}
	
	public ParserRule getBlockRule() {
		return getBlockAccess().getRule();
	}
	
	//StateFragment:
	//	on='on' timeline=STRING keyword=('state' | 'mode' | 'function') name=STRING;
	public StateFragmentElements getStateFragmentAccess() {
		return pStateFragment;
	}
	
	public ParserRule getStateFragmentRule() {
		return getStateFragmentAccess().getRule();
	}
	
	//Reference:
	//	keyword='ref' name=STRING over='over' timelines+=STRING+;
	public ReferenceElements getReferenceAccess() {
		return pReference;
	}
	
	public ParserRule getReferenceRule() {
		return getReferenceAccess().getRule();
	}
	
	//terminal ID:
	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	}
	
	//terminal INT returns ecore::EInt:
	//	'0'..'9'+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	}
	
	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	}
	
	//terminal ML_COMMENT:
	//	'/*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	}
	
	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	}
	
	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	}
	
	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	}
}
